package igor.lakienko.ru.generation.quotes.entity;

import igor.lakienko.ru.generation.quotes.enums.Cryptocurrency;
import igor.lakienko.ru.generation.quotes.enums.TypeSecurities;
import lombok.Builder;
import lombok.Value;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.UUID;

@Value
@Builder
public class CryptocurrencyEntity {
    /**
     * Идентификатор криптовалюты.
     */
    @Builder.Default
    String id = UUID.randomUUID().toString();

    /**
     * Название криптовалюты.
     */
    Cryptocurrency cryptocurrency;

    /**
     * Полное название криптовалюты.
     */
    String fullCryptocurrencyName;

    /**
     * Цена покупки криптовалюты.
     */
    BigDecimal bid;

    /**
     * Цена продажи криптовалюты.
     */
    BigDecimal offer;

    /**
     * Суммарная рыночная стоимость криптовалюты.
     */
    BigInteger marketCapital;

    /**
     * Цена за единицу криптовалюты.
     */
    float price;

    /**
     * Количество криптовалюты.
     */
    BigInteger cryptocurrencyVolume;

    /**
     * Прибыль компании за год.
     */
    BigInteger totalInCirculation;

    /**
     * Рекомендация аналитиков(покупать, продавать или держать).
     */
    String recommendationAnalysts;

    /**
     * Тип котировки.
     */
    @Builder.Default
    TypeSecurities type = TypeSecurities.CRYPTOCURRENCY;

    /**
     * Волатильность криптовалюты за год.
     */
    float monthlyVolatility;

    /**
     * рейтинг криптовалюты.
     */
    int ratingCryptocurrency;
}
